package com.jinduplan.planmanager.mvp.contract

import com.cxz.kotlin.baselibs.mvp.IModel
import com.cxz.kotlin.baselibs.mvp.IPresenter
import com.cxz.kotlin.baselibs.mvp.IView
import com.jinduplan.planmanager.bean.*
import io.reactivex.rxjava3.core.Observable

/**
 * @author admin
 * @date 2018/11/20
 * @desc
 */
interface ProjectUploadDetailContract {

    interface View : IView {
        fun setProjectUploadDetailListData(projectData: ProjectUploadDetailBean)
        fun setProjectLabour(labour: ProjectLabour)
        fun setProjectWorkmanShip(projectWorkmanShip: ProjectWorkmanShip)
        fun putProjectUploadSuccess(data: ArrayList<ProjectUploadSuccessBean>)
        fun setNewProjectUploadDetailListData(projectData: NewProjectUploadDetailBean)
    }

    interface Presenter : IPresenter<View> {
        fun getProjectUploadDetailList(project_id: Int)
        fun getProjectLabour(project_id: Int)
        fun getProjectWorkmanShip(
            page: Int, limit: Int, hanging_blue_id: Int, project_id: Int, building_id: Int,
            workmanship_id: Int, facade_id: Int
        )

        fun putProjectUpload(jsonData: RequestPutProjectBean)
        fun getNewProjectUploadDetailList(project_id: Int)
    }

    interface Model : IModel {
        fun getProjectUploadDetailList(
            project_id: Int
        ): Observable<HttpResult<ProjectUploadDetailBean>>

        fun getNewProjectUploadDetailList(
            project_id: Int
        ): Observable<HttpResult<NewProjectUploadDetailBean>>

        fun getProjectLabourList(
            project_id: Int
        ): Observable<HttpResult<ProjectLabour>>

        fun getProjectWorkmanShipList(
            page: Int, limit: Int, hanging_blue_id: Int, project_id: Int, building_id: Int,
            workmanship_id: Int, facade_id: Int
        ): Observable<HttpResult<ProjectWorkmanShip>>

        fun putProjectUpload(jsonData: RequestPutProjectBean): Observable<HttpListResult<ProjectUploadSuccessBean>>
    }
}